ERROR_MESSAGE = 1;
SUCCESS_MESSAGE = 2;

function Container () {

    var pagina_aberta = null;
    var containerId = '';

    this.setId = function (id) {
        containerId = id;
    }

    this.setInclude = function (id, url) {
        $("#" + id).load(url);
    }

    this.insert = function (id, url, callback) {
        if ($("#" + containerId).children("#" + id).length == 0) {
            var div = $("<div>");
            div.attr("id", id);
            div.css("display", "none");
            $("#" + containerId).append(div);
        }
        $("#" + id).load(url, callback);
    }

    this.select = function (id) {
        if (pagina_aberta != id) {
            $("#" + pagina_aberta).hide();
            $("#" + id).show();
            pagina_aberta = id;
        }
    }
}

function showMessage(tipo, message) {
    if (tipo == ERROR_MESSAGE) {
        $("#message").attr("title","Erro!");
    } else if (tipo == SUCCESS_MESSAGE) {
        $("#message").attr("title","Sucesso!");
    }
    $("#message").html(message);
    $("#message").dialog("destroy");
    $("#message").dialog({
        modal: true,
        resizable : false,
        buttons: {
            Ok: function() {
                $(this).dialog('close');
            }
        }
    });
}

function listarXML(campo, url, recurso, campo_id, campo_valor) {
    var select = $("#" + campo);
    $("#progress").show();
    $.ajax({
        type: "POST",
        url : url,
        data : {
            tipo_listagem : 'xml',
            acao : 'listar'
        },
        success: function(msg){
            $("#progress").hide();
            if (!(msg instanceof XMLDocument)) {
                msg = msg.replace("Exception: ", "");
                showMessage(ERROR_MESSAGE, msg);
                return;
            }
            var lista = $(msg).find(recurso);
            lista.each(function() {
                var option = $('<option></option>');
                option.val($(this).find(campo_id).text());
                option.html($(this).find(campo_valor).text());
                select.append(option);
            });
            $("#progress").hide();
        }
    });
}

function showConfirm(message, callback) {
    $("#confirm").html(message);
    $("#confirm").dialog("destroy");
    $("#confirm").dialog({
        modal: true,
        resizable : false,
        buttons: {
            Ok: callback,
            Cancelar: function() {
                $(this).dialog('close');
            }
        }
    });
}

function showDialogManutencaoRecurso(modal, width, height, url, acao) {
    $("#recurso").load(url, function () {
        $("#recurso").dialog("destroy");
        $("#recurso").dialog({
            width : width,
            height : height,
            modal: modal,
            resizable : false,
            buttons: acao
        });
    });
}